package com.raising.utils;

import com.google.common.collect.Maps;
import com.raising.StaticParam;
import com.raising.modules.sys.utils.SysConfigUtil;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Map;

/**
 * 上传工具类
 * @author GaoYuan
 * @datetime 2018/2/24 上午10:50
 */
public class UploadUtils {
    /**
     * 上传至HDFS
     * @author LiHaoShan
     * @datetime 2018/3/14 上午11:04
     */
    public static Map<String,Object> uploadToHDFS(MultipartFile file,String savePath){
        //存HDFS
//        if (file != null && !file.isEmpty()) {
//            try{
//                byte[] contents =  file.getBytes();
//                Map<String,Object> map=UploadFileToHdfsUtils.createFile(savePath,contents);
//                return map;
//            }catch (Exception e){
//                Map<String,Object> map= Maps.newHashMap();
//                return map;
//            }
//        }else{
//            Map<String,Object> map= Maps.newHashMap();
//            return map;
//        }
        //存硬盘
        return uploadToHard(file, StaticParam.DOC_HARD_PRE + savePath);
    }
    /**
     * 上传至硬盘
     * @author GaoYuan
     * @datetime 2018/2/24 上午11:04
     */
    public static Map<String,Object> uploadToHard(MultipartFile file,String savePath){
        if (file != null && !file.isEmpty()) {
            try {
                // 保存的文件路径(如果用的是Tomcat服务器，文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中)
                String savePathPre = SysConfigUtil.getConfigValueByKey("UPLOAD_SAVE_PATH_IMG","");
                String filePath = savePathPre + savePath;

                File saveDir = new File(filePath);
                //判断是否有重复的
                File oldFile = new File(filePath);
                if (!saveDir.getParentFile().exists()){
                    saveDir.getParentFile().mkdirs();
                }
                if(oldFile.exists()){
                    oldFile.delete();
                }

                // 转存文件
                file.transferTo(saveDir);
                Map<String,Object> map = Maps.newHashMap();
                map.put("savePath",savePath);
                return map;
            } catch (Exception e) {
                e.printStackTrace();
                Map<String,Object> map = Maps.newHashMap();
                return map;
            }
        }else{
            Map<String,Object> map = Maps.newHashMap();
            return map;
        }
    }
}
